Skip to main content

15-03 ConvertSelectionToCsvmd

ConvertSelectionToCsv.md​

Public Sub ConvertSelectionToCsv()

Dim sourceRange As Range
Set sourceRange = GetInputOrSelection("Choose range for converting to CSV")

If sourceRange Is Nothing Then Exit Sub

Dim outputString As String

Dim dataRow As Range
For Each dataRow In sourceRange.Rows

Dim dataArray As Variant
dataArray = Application.Transpose(Application.Transpose(dataRow.Rows.Value2))

'TODO: improve this to use another Join instead of string concats
outputString = outputString & Join(dataArray, ",") & vbCrLf

Next dataRow

Dim myClipboard As MSForms.DataObject
Set myClipboard = New MSForms.DataObject

myClipboard.SetText outputString
myClipboard.PutInClipboard

End Sub